package cn.edu.ujn.liuklab3.service;

import cn.edu.ujn.liuklab3.entity.Coupon;
import cn.edu.ujn.liuklab3.dao.CouponDao;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;

import javax.annotation.Resource;
import java.util.List;

@Service("couponService")
public class CouponServiceImpl implements CouponService {
    @Resource
    private CouponDao couponDao;

    @Override
    public Page<Coupon> queryByPage(Coupon coupon, PageRequest pageRequest) {
        long total = this.couponDao.count(coupon);
        return new PageImpl<>(this.couponDao.queryAllByLimit(coupon, pageRequest), pageRequest, total);
    }

    @Override
    public Coupon insert(Coupon coupon) {
        this.couponDao.insert(coupon);
        return coupon;
    }

    @Override
    public Coupon update(Coupon coupon) {
        return null;
    }

    @Override
    public cn.edu.ujn.util.Page<Coupon> selectAll(Coupon coupon) {
        List<Coupon> coupons = couponDao.selectAll(coupon);
        cn.edu.ujn.util.Page<Coupon> page = new cn.edu.ujn.util.Page<>();
        page.setPage(coupon.getStart());
        page.setRows(coupons);
        page.setSize(coupon.getRows());
        page.setTotal(couponDao.selectCount());
        return page;
    }

    @Override
    public List<Coupon> findAll() {
        return couponDao.findAll();
    }
}
